package Java.BlackHorse.Thread.ThreadPoll2;

import java.util.concurrent.*;

public class ThreadDemo {
    /*
    * ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor
    * (核心线程数 最大线程数 空闲线程最大存活时间 任务队列 创建线程工厂 任务拒绝策略)
    * 参数一： 核心线程数    不能小于0
    * 参数二：最大线程数     不能小于等于0， 最大数量 >= 核心数量
    * 参数三：空闲时间线程的最大存活时间     不能小于0
    * 参数四：时间单位      用TimeUnit指定
    * 参数五：任务队列      不能为null
    * 参数六：创建线程工厂   不能为null
    * 参数七：任务的拒绝策略 不能为null
    *
    * */
    public static void main(String[] args) {
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
                3,  //核心线程数
                6,  //最大线程数
                60, //空闲时间线程的最大存活时间
                TimeUnit.SECONDS,   //时间单位
                new ArrayBlockingQueue<>(3),    //任务队列
                Executors.defaultThreadFactory(),   //创建线程工厂
                new ThreadPoolExecutor.AbortPolicy()    //任务的拒绝策略
        );

//        获取电脑上JVM中的最大并行数
        int count = Runtime.getRuntime().availableProcessors();
        System.out.println(count);
    }
}
